/*
日志一共分为七个等级：
    1. UNKNOW = 0：不知道是什么等级
    2. DEBUG：debug时候打印⽇志的等级
    3. INFO：用户的一些提示信息
    4. WARN：警告信息
    5. ERROR：错误信息
    6. FATAL：致命信息
    7. OFF：关闭所有日志输出
*/

#ifndef __M_LEVEL_H__
#define __M_LEVEL_H__

#include <iostream>

namespace LogModule
{
    class LogLevel
    {
    public:
        enum class Level
        {
            UNKNOW = 0,
            DEBUG,
            INFO,
            WARN,
            ERROR,
            FATAL,
            OFF
        };
        // 因为联合体不是字符串，所以我们可以将日志等级改为const char*类型
        static const char *ToString(LogLevel::Level level)
        {
            switch (level)
            {
            case LogLevel::Level::DEBUG:
                return "DEBUG";
            case LogLevel::Level::INFO:
                return "INFO";
            case LogLevel::Level::WARN:
                return "WARN";
            case LogLevel::Level::ERROR:
                return "ERROR";
            case LogLevel::Level::FATAL:
                return "FATAL";
            case LogLevel::Level::OFF:
                return "OFF";
            }
            return "UNKNOW";
        }
    };
}

#endif